package com.loop.stuSystem;

import java.util.HashMap;
import java.util.Scanner;
import java.util.Set;

public class StuOperation {
    //学生列表
    private static HashMap<String,Student> map = new HashMap<>();

    /*public static HashMap<String, Student> getHashMap() {
        return map;
    }

    public static void setHashMap(HashMap<String, Student> hashMap) {
        map = hashMap;
    }
*/
    /**
     * 学生添加方法
     * @return true表示添加成功，false表示添加失败
     */
    public static boolean addStudent(){
        Scanner scanner = new Scanner(System.in);
        System.out.println("请按照要求操作，输入 end 退出");
        System.out.println("请输入学号：");
        String id = scanner.next();
        //判断此ID在集合中是否存在，若存在就提示用户返回主菜单，否则继续添加
        if (map.containsKey(id)){
            System.out.println("该学号已存在，请勿重复存入！");
            return false;
        }
        System.out.println("请输入该学生的姓名：");
        String name = scanner.next();
        System.out.println("请输入学生的年龄：");
        Integer age = scanner.nextInt();
        System.out.println("请输入学生的生日：（yyyy-MM-dd）");
        String birthDay = scanner.next();
        map.put(id,new Student(id,name,age,birthDay));
        System.out.println("您存入的学生内容是："+map.get(id));
        return map.containsKey(id);
    }

    /**
     * 学生删除方法
     * @return 是否删除成功，true表示删除成功，false表示删除失败
     */
    public static boolean deleteStudent(){
        Scanner scanner = new Scanner(System.in);
        System.out.println("请按照要求操作，输入 end 退出");
        System.out.println("请输入要删除的学生号：");
        String id = scanner.next();
        //判断map集合中是否有此学生号（sId）
        if (!map.containsKey(id)){
            System.out.println("此学号不在学生列表内！");
            return false;
        }
        System.out.println("确定要删除吗？（1.删除   2.取消）");
        String choice = scanner.next();
        if ("1".equals(choice)){
            map.remove(id);
            return !map.containsKey(id);
        }
        return false;
    }

    /**
     * 学生修改方法
     * @return 是否修改成功，true表示修改成功，false表示修改失败
     */
    public static boolean updateStudent(){
        Scanner scanner = new Scanner(System.in);
        System.out.println("请按照要求操作，输入 end 退出");
        System.out.println("请输入要修改的学生号：");
        String id = scanner.next();
        if (!map.containsKey(id)){
            System.out.println("此学生号不在系统中！");
            return false;
        }
        Student s = map.get(id);
        System.out.println("此学生的信息如下： "+ s);
        System.out.println("请输入该学生新的姓名：");
        String newName = scanner.next();
        System.out.println("请输入该学生新的年龄：");
        Integer newAge = scanner.nextInt();
        System.out.println("请输入该学生新的生日：");
        String newBirthday = scanner.next();
        s.setName(newName);
        s.setAge(newAge);
        s.setBirthday(newBirthday);
        Student newStu = map.put(id, s);
        System.out.println("修改后的学生信息如下： "+ newStu);
        return true;
    }

    /**
     * 展示集合中存在的学生对象信息
     */
    public static void showStudents(){
        Scanner scanner = new Scanner(System.in);
        System.out.println("请选择  1）根据学号查看单个学生信息 2）查看所有学生");
        Integer choice = scanner.nextInt();
        if (choice == 1){
            System.out.println("请输入学生号");
            String id = scanner.next();
            if (map.containsKey(id)){
                System.out.println(map.get(id));
            }else {
                System.out.println("输入的学生号不存在！");
            }
        }else if (choice == 2){
            Set<String> strings = map.keySet();
            for (String key: strings) {
                Student student = map.get(key);
                System.out.println(student);
            }
            System.out.println("输入任意键返回主菜单");
            scanner.next();
            return;
        }else {
            System.out.println("请输入1或2");
            showStudents();
        }
    }
}
